# 模块

"""
import 模块名称
import 模块名称 as 新名称
from 模块名称 import 导入对象名称
from 模块名称 import 导入对象名称 as 新名称
from 模块名称 import *
"""

import math
math.fabs(-5)
math.e
fabs(-5)        #报错

import math as m
m.fabs(-5)
m.e
math.fabs(-5)       #math不可用


from math import fabs
fabs(-5)            #此时可以直接用了，不用加前缀
from math import fabs as f1
f1(-5)

from math import *  #引入所有
fabs(-5)
e
pi

## import和from语句执行导入操作的时候，模块中的全部语句都会被执行，且默认只执行一次！！！
#用pycharm运行
import chapter04.mytest as test
# 在python console中运行有,两个编辑器代码路径不一样
import src.chapter04.mytest as test

test.x          #100
test.x=200
import chapter04.mytest as test
test.x          #200

##import导入有同名问题需要注意！导入的文件与本文件同名，本文件为主。
## 当from import了两个同名的对象是，后引入的对象覆盖了前面引入的

## 想要重新引入模块，把引入模块的代码重新执行一遍，怎么办？
from imp import reload
reload(test)

## 查看模块搜索路径
import sys
sys.path        #即可查看

from sys import path    #尝试修改路径
path
del path[1]
path.append(r"d:\temp")

## 可以嵌套引入，本文件引入mytest.py，mytest又引入了mytest2.py

dir(sys)
sys.__doc__     #查看文件开头的注释
sys.__file__    #查看模块的完整文件名
sys.__name__    #模块名称           这几个是系统内置的属性，__系统属性__


